package com.yonyou.crm.bpub.template.service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.yonyou.crm.base.industry.service.IndustryBizServiceImpl;
import com.yonyou.crm.bpub.template.entity.*;
import com.yonyou.crm.cum.contact.service.ContactBizServiceImpl;

@Service
public class LeadTemplates extends BaseTemplates {
		
	@Autowired
	ContactBizServiceImpl bizService;
	
	@Override
	public ArrayList<TemplatesHeaderVO> getHeader(){
		ArrayList<TemplatesHeaderVO> header = getTemplateHeader();
		return header;
	};
	
	@Override
	public ArrayList<TemplatesBodyVO> getBody(){;
		ArrayList<TemplatesBodyVO> body = new ArrayList<TemplatesBodyVO>();
		return body;
	}
	
	@Override
	public ArrayList<TemplatesTriggerVO> getTrigger(){
		ArrayList<TemplatesTriggerVO> trigger = new ArrayList<TemplatesTriggerVO>();
		return trigger;
	};
	
	@Override
	public ArrayList<TemplatesFilterVO> getFilter(){;
		ArrayList<TemplatesFilterVO> filter = new ArrayList<>();
		TemplatesFilterVO filterItem = new TemplatesFilterVO();
		filterItem.setItemkey("industryId");
		filter.add(filterItem);
		
		filterItem = new TemplatesFilterVO();
		filterItem.setItemkey("ownerUserId");
		filter.add(filterItem);
		
		return filter;
	}
	
	public ArrayList<TemplatesHeaderVO> getTemplateHeader() {
		ArrayList<TemplatesHeaderVO> headerList = new ArrayList<TemplatesHeaderVO>();
		
		TemplatesHeaderVO baseInfo = getTemplateHeaderBaseInfo();
		headerList.add(baseInfo);
		
		TemplatesHeaderVO contactInfo = getTemplateHeaderContactInfo();
		headerList.add(contactInfo);
		
		TemplatesHeaderVO remarkInfo = getTemplateHeaderRemarkInfo();
		headerList.add(remarkInfo);
		
		return headerList;
	}
	
	public TemplatesHeaderVO getTemplateHeaderBaseInfo(){
		TemplatesHeaderVO baseInfo = new TemplatesHeaderVO();
		baseInfo.setHeadername("");
		baseInfo.setStyle("");
		
		ArrayList<TemplatesItemVO> itemList = new ArrayList<TemplatesItemVO>();
		TemplatesItemVO item;
		ArrayList<TemplatesEnumVO> enumdatalist;

		item = new TemplatesItemVO();
		item.setItemkey("id");
		item.setItemname("ID");
		item.setItemtype("decimal");
		item.setIseditable("N");
		item.setIsrequired("Y");//TODO
		item.setIsdisplay("N");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("name");
		item.setItemname("姓名");
		item.setItemtype("singlelinetext");
		item.setIseditable("Y");
		item.setIsrequired("Y");
		item.setMaxlenth("100");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("gender");
		item.setItemname("性别");
		item.setItemtype("enum");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setIsmultiselect("N");
		enumdatalist = getEnumList("gender");
		item.setEnumdatalist(enumdatalist);
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("mobile");
		item.setItemname("手机");
		item.setItemtype("phone");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setMaxlenth("30");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("companyName");
		item.setItemname("公司名称");
		item.setItemtype("singlelinetext");
		item.setIseditable("Y");
		item.setIsrequired("N");
		itemList.add(item);

		item = new TemplatesItemVO();
		item.setItemkey("source");
		item.setItemname("线索来源");
		item.setItemtype("enum");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setIsmultiselect("N");
		enumdatalist = getEnumList("lead_source");//TODO获取线索来源
		item.setEnumdatalist(enumdatalist);
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("industryId");
		item.setItemname("行业");
		item.setItemtype("refertype");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setIsmultiselect("N");
		item.setReferto("industry");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("level");
		item.setItemname("线索等级");
		item.setItemtype("enum");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setIsmultiselect("N");
		enumdatalist = getEnumList("lead_level");//TODO获取线索等级
		item.setEnumdatalist(enumdatalist);
		itemList.add(item);
		
		baseInfo.setItemlist(itemList);

		return baseInfo;
	}
	
	public TemplatesHeaderVO getTemplateHeaderContactInfo(){
		TemplatesHeaderVO contactInfo = new TemplatesHeaderVO();
		contactInfo.setHeadername("");
		contactInfo.setStyle("");
		
		ArrayList<TemplatesItemVO> itemList = new ArrayList<TemplatesItemVO>();
		TemplatesItemVO item;
		ArrayList<TemplatesEnumVO> enumdatalist;
		
		item = new TemplatesItemVO();
		item.setItemkey("tel");
		item.setItemname("固定电话");
		item.setItemtype("phone");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setMaxlenth("30");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("email");
		item.setItemname("邮箱");
		item.setItemtype("email");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setMaxlenth("100");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("website");
		item.setItemname("网址");
		item.setItemtype("link");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setMaxlenth("128");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("post");
		item.setItemname("职位");
		item.setItemtype("enum");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setIsmultiselect("N");
		enumdatalist = getEnumList("contact_role");//TODO获取线索等级
		item.setEnumdatalist(enumdatalist);
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("province_city_district");
		item.setItemname("省、市、区/县");
		item.setItemtype("address_pcd");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setIsmultiselect("N");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("address");
		item.setItemname("街道号码");
		item.setItemtype("address");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setMaxlenth("100");
		itemList.add(item);
		
		item = new TemplatesItemVO();
		item.setItemkey("ownerUserId");
		item.setItemname("负责人");
		item.setItemtype("refertype");
		item.setReferto("user");
		item.setIseditable("Y");
		item.setIsrequired("N");
		item.setMaxlenth("100");
		itemList.add(item);
		
		contactInfo.setItemlist(itemList);
		return contactInfo;
	}
	
	public TemplatesHeaderVO getTemplateHeaderRemarkInfo(){
		TemplatesHeaderVO tagInfo = new TemplatesHeaderVO();
		tagInfo.setHeadername("");
		tagInfo.setStyle("");
		
		ArrayList<TemplatesItemVO> itemList = new ArrayList<TemplatesItemVO>();
		TemplatesItemVO item;
		
		item = new TemplatesItemVO();
		item.setItemkey("remarks");
		item.setItemname("备注");
		item.setItemtype("largetext");
		item.setIseditable("Y");
		item.setIsrequired("N");
		itemList.add(item);
		
		tagInfo.setItemlist(itemList);
		return tagInfo;
	}

}
